<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>
    <script>
        // 1. Object.is();  判断 2个对象是否相同 类似 ===;
        // console.log(NaN===NaN);
        // console.log( Object.is(NaN,NaN));
        // console.log(typeof null);

        // 2. Object.assign ： 合并2个或者多个对象 ； （重点）
    //     var obj1 = {
    //         name:"张三"
    //     }
    //     var obj2 = {
    //         age:20
    //     }

    //     var obj3 = {
    //         heigth:"178cm",
    //         age:30
    //     }

    //   var res = Object.assign(obj1,obj2,obj3);
    //   console.log(res);
    //   注意： 一、重复的键名覆盖 ；二、Object.assign是一个浅拷贝；

    // res.name = "李四";
    // console.log("??",obj1);

    // 3.Object.seal() ： 把对象 改成不可配置对象(删除对象属性) ；
    // var obj = {
    //     name:"张三",
    //     age:20
    // }
    // Object.seal(obj);
    // obj.age = 30;  // 对象可以被更改；

    // // delete obj.age;
    // console.log(obj);

    // 4. 判断某个属性是否是对象的自身属性 ；
    // Object.prototype.height = "178cm";
    // var obj = {
    //     name:"张三",
    //     age:20
    // }

    // for(let key in obj){
    // //    console.log( Object.hasOwn(obj,key))
    //     // if(obj.hasOwnProperty(key)){  // es5 判断 某个属性是否是对象的自身属性
    //         if(Object.hasOwn(obj,key)){  // ES6 判断是否是自身属性 Object.hasOwn(对象，键名)
    //             console.log(key);
    //         }

    //     // }
    // }

    // 5. 获取对象的所有键名放在数组里 Object.keys
    
//     var obj = {
//         name:"张三",
//         age:20
//     }

//    var arr =  Object.keys(obj);
//    console.log(arr);


// 6 .获取对象的所有键值 放在数组里  Object.values
//     var obj = {
//         name:"张三",
//         age:20
//     }

//   var arr =   Object.values(obj);
//   console.log(arr);

// {name:"张三",age:20}  ------>  queryString参数： name=张三&age=20





    </script>
</body>
</html>